// //function函数中的this指向的是把函数当成方法调用的上下文对象。在代码执行时候this可能会发生变化
// window.color = 'red';
// let obj = {
//   color:'green'
// };
// function showColor(){
//   console.log(this.color);
// }
// showColor();//red
// obj.showColor = showColor;
// obj.showColor();//green
// //箭头函数中的this指向定义箭头函数的上下文对象，在代码执行的时候，this一般不发生变化
// console.log('---------------------------------------------------------');
// window.color1 = 'black';
// let obj1 = {
//   color1:'white'
// }
// let showColor1 = ()=>{
//   console.log(this.color1);
// }
// showColor1();//black
// obj.showColor1 = showColor1;
// obj.showColor1();//black
// //事件回调、定时回调中的箭头函数中的this会保留定义箭头函数时的上下文
// function King(){
//   this.name = 'Herry';
//    // this 引用 King 的实例
//   setTimeout(()=>{console.log(this.name);},1000)
// }
// new King();//Herry

// function Queen(){
//   this.name = 'Alice';
//    // this 引用 window 对象
//   setTimeout(function(){console.log(this.name);},1000)
// }
// new Queen();
// //---------------------------------------------------------------------
// // window.score = 45;
// // function Person(){
// //   this.score = 76;
// //   function show(){
// //     console.log(this.score);
// //   }
// //   show();
// // }
// // new Person();//45
// // window.age = 78;
// // let obj2 = {
// //   age:45,
// //   show(){
// //     function log(){
// //       console.log(this.age);
// //     }
// //     log();
// //   }
// // }
// // obj2.show();//78

function show(){};
let obj = {};
obj.show = show;
console.log(obj.show === show);//true
